package com.hange.excel.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.awt.Color;

@Data
public class CellValueDto {
    @JsonProperty("v")
    private Object v; // 内容的原始值

    @JsonProperty("m")
    private String m; // 内容的显示值

    @JsonProperty("ct")
    private CtValue ct; // 单元格值格式

    // 字体样式
    private Integer fs; // 字体大小
    private String ff; // 字体名称
    private String fc; // 字体颜色，使用十六进制表示颜色
    private Boolean bl; // 字体加粗，true或false
    private Boolean it; // 字体斜体，true或false
    private Boolean cl; // 是否启用删除线，true或false

    // 背景样式
    private String bg; // 背景颜色，使用十六进制表示颜色

    // 对齐样式
    private Integer ht; // 水平对齐方式，0表示左对齐，1表示居中，2表示右对齐
    private Integer vt; // 垂直对齐方式，0表示顶部对齐，1表示居中，2表示底部对齐
    private Integer tr; // 文字旋转角度，如90, 180, 270等
    private Integer tb; // 是否自动换行，true或false

    // 批注信息
    private PsValue ps; // 批注对象

    // 公式信息
    private String f; // 单元格公式，如"=SUM(A1)"

    // 嵌套的批注对象
    @Data
    public class PsValue {
        @JsonProperty("left")
        private Integer left; // 批注框左边距

        @JsonProperty("top")
        private Integer top; // 批注框上边距

        @JsonProperty("width")
        private Integer width; // 批注框宽度

        @JsonProperty("height")
        private Integer height; // 批注框高度

        @JsonProperty("value")
        private String value; // 批注内容

        @JsonProperty("isshow")
        private Boolean isshow; // 批注框是否显示
    }

    // 嵌套的单元格格式对象
    @Data
    public class CtValue {
        @JsonProperty("fa")
        private String fa; // 格式名称

        @JsonProperty("t")
        private String t; // 格式类型
    }
}